-------------------------------
   HiAsm
-------------------------------
: NetSpirit
-------------------------------



  6- ,  
   ,  
   :

- AES (Rijndael)
- RC6
- Twofish
- MARS
- CAST-256
- Serpent

<<<   >>>

1)       HiAsm  Install.his.
2)   BlockCipher.ini   HiAsm\Elements\Delphi\conf
3)  HiAsm


       FPC 
    ,  
  BlockCipher.pas   "Unicode version"
  "HiAsm\Elements\Delphi\code".


<<<  >>>

       
   .

:
  - Password -       /
  - SrcFileName -      doEncryptFile, doDecryptFile
  - DstFileName -      doEncryptFile, doDecryptFile
  - BufferSize -   ( ), /    
     doEncryptFile  doDecryptFile.     
    ,     (  )   
         .    5 .
      160    .
  - BlockMode -    . ECB -    
       ; CBC, CFB -      
      ,   InitVector   
    ,      .   
    ,  ECB,         
    ,     .     
       .
  - InitVector -    BlockMode,   ECB. 
           .  16 .
  - Padding -     ,    . 
     None -    , /    
       . : ISO-10126 -   , 
        ; PKCS-7 -  , 
        ; Byte -    
     $80,    0.
  - Checksum -  True,         
     ,        onErrorPassword. 
           ,      
     .        .

:
  - doEncrypt, doDecrypt - /  Data.
  - doEncryptFile, doDecryptFile - /   .
     //   BufferSize.
        4 .
  - doEncryptStream, doDecryptStream - / Count   
       SrcStream       
     DstStream.  onResult   ,   DstStream
  - doAbort -       
  - doBenchmark -    .    
       BufferSize     .    
       16-.      , 
       .  ,    , 
      .

:
  - onResult -     /. 
         .     -  
      .
  - onError -        
    0 -     (    ,
                 .)
        doEncryptFile, doDecryptFile:
    1 -     
    2 -     
  - onErrorPassword -        
      Checksum.       
     Checksum    .




<<<  >>>

      Examples

- RC6 Cipher demo.sha -     .
         HEX.
     .

- RC6 File encryption.sha -  / .
      .   .

- Benchmarks.sha -      




<<<   >>>

    
Advanced Encryption Standard (AES)   
   .
     Rijndael,  
    AES.

       
       16 .
        ,
          
  .

1)  

     /     .
        .
      Padding.
  ,    /    , 
 , ,   . ,  
 Padding    ,    
/,     .   doDecrypt/doDecryptFile
   ,    .  doDecryptStream
      .
        ,   Padding.

     Padding    .
ISO-10126 -        
     .       
    . PKCS-7 -  ,  
   ,  ,     .
          .
          ,
     ,     
( ,   2-  (32 )   Checksum
  ).
 Byte -        $80,  
  0.        
      $80.

  :      (16 ),     
     .      
 -     ,    ,
       .

2)   

          .
     ,      
  .    Checksum     
 ,      //.
    2       .
    30    (    
     - 32 ).   
Checksum ,         -
  onErrorPassword.       ,   
    Checksum -    .

3)   

       (   )
   .    ,
     BlockMode.    -  ECB 
(Electronic CodeBook,    ).   
    ,     .
         , 
       
.  ,         ,
          
       . ,
  BMP-    ,   
     .
      - CBC (Cipher Block Chaining)  
CFB (Cipher Feedback).     ,     
    XOR    .    
    "",    .
     ""  ,    
  "" ,    .
        InitVector.
     BlockMode  InitVector   .
  CBC  CFB       (    
   ).    ,   
   ,     .

        .

4)   

        .
     -   
  .  ,    ,
,   .

       :
- AES - 32
- RC6 -   (*)
- Twofish - 32
- MARS - 56
- CAST-256 - 32
- Serpent - 32

(*)  RC6       ,
      
    176  (  
,  20);      ,  
 ,     .

